# 版权所有 2025 地球仪 (ldhhp@163.com)
# 本文件基于灯哥的 Py-Apple Dog 项目进行修改。
# 原始项目地址：https://github.com/ToanTech/py-apple-quadruped-robot
# 本项目遵循 Apache 许可证 2.0 版。
# 你可以在以下地址获取许可证副本：http://www.apache.org/licenses/LICENSE-2.0

import wifi_moudle
from machine import Timer,freq
import _thread
from time import sleep_ms
 
import sys,os
sys.path.append("oled")
import OLED

#设置ESP32 8266 频率
freq(240000000)
OLED.init()
OLED.text_direct("胖胖狗起床中...")

print("胖胖狗 1.0V")
wifi_moudle.InitWifi()

import faces
OLED.image_direct(faces.Face_hello)
    
import sys_control
if wifi_moudle.selfadd =="":
    print("网络异常,终止机器狗初始化")    
    sys_control.beep_control(150,500)
    while True:       
       sys_control.beep_run()
       sleep_ms(33)       

import dog_control
# def loop(t):
#     try:
#       dog_control.mainloop()
#       sys_control.beep_run()
#     except Exception as e:
#         print(str(e))

#from asr_module_m import start_asr
#start_asr()

def loop_thread():
    import time
    FPS=30 #ms
    while True:
        start = time.ticks_ms()  # 记录循环开始时间
        try:
            dog_control.mainloop(FPS)
            sys_control.beep_run()
        except Exception as e:
            print(f"循环异常: {str(e)}")
        
        # 计算剩余等待时间
        elapsed = time.ticks_diff(time.ticks_ms(), start)
        sleep_time = max(0, FPS - elapsed)
        #print(sleep_time,elapsed)
        time.sleep_ms(sleep_time)

# 移除原来的Timer初始化代码
# print("启动30ms间隔机器狗调度进程")
# t = Timer(1)
# t.init(period=30,mode=Timer.PERIODIC,callback=loop)

# 启动高精度循环线程
_thread.start_new_thread(loop_thread, ())

sleep_ms(1000)
def webser():
    exec(open('web_c.py').read())
#启动Webser 服务  
print("启动web线程")
_thread.start_new_thread(webser, ())




  

